// https://github.com/mysql/mysql-connector-j/blob/release/9.x/src/main/protocol-impl/java/com/mysql/cj/protocol/a/NativeConstants.java

// #[allow(non_camel_case_types)]
// pub enum ServerStatus {
    
// }

// #[allow(non_camel_case_types)]
// pub enum CapabilitiesFlags {
    
// }

#[allow(non_camel_case_types)]
pub enum StringLengthDataType {
    /**
     * Protocol::FixedLengthString
     * Fixed-length strings have a known, hardcoded length.
     */
    STRING_FIXED,

    /**
     * Protocol::VariableLengthString
     * The length of the string is determined by another field or is calculated at runtime
     */
    STRING_VAR,
}

#[allow(non_camel_case_types)]
pub enum StringSelfDataType {
    /**
     * Protocol::NulTerminatedString
     * Strings that are terminated by a [00] byte.
     */
    STRING_TERM,
    /**
     * Protocol::LengthEncodedString
     * A length encoded string is a string that is prefixed with length encoded integer describing the length of the string.
     * It is a special case of Protocol::VariableLengthString
     */
    STRING_LENENC,
    /**
     * Protocol::RestOfPacketString
     * If a string is the last component of a packet, its length can be calculated from the overall packet length minus the current position.
     */
    STRING_EOF,
}

// #[allow(non_camel_case_types)]
// // https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_basic_dt_integers.html
// pub enum IntegerType {
//     // IntegerDataType
//     FixedLengthInteger,
//     LengthEncodedInteger,
// }

// https://github.com/mysql/mysql-connector-j/blob/release/9.x/src/main/protocol-impl/java/com/mysql/cj/protocol/a/NativePacketPayload.java
#[allow(non_camel_case_types)]
#[derive(PartialEq, PartialOrd)]
pub enum IntegerDataType {
    INT1,
    INT2,
    INT3,
    INT4,
    INT6,
    INT8,
    /**
     * Length-Encoded Integer Type
     */
    INT_LENENC,
}

#[allow(non_camel_case_types)]
#[derive(Default, Debug, PartialEq, Clone)]
pub enum SslMode {
    PREFERRED,
    REQUIRED,
    VERIFY_CA,
    VERIFY_IDENTITY,
    #[default]
    DISABLED,
}
